﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Colonisator.Classes
{
    /// <summary>
    /// Enumère de manière statique les actions possibles dans le jeu
    /// L'exécution des dites actions se fait en fonction de son type
    /// Les méthodes sont les points d'entrée du jeu en lui-même
    /// </summary>
    public sealed class Action
    {
        /// <summary>
        /// Action de colonisation d'une île
        /// </summary>
        /// <param name="joueurActeur">le joueur qui va coloniser</param>
        /// <param name="ileCible">l'île cible</param>
        /// <param name="elementsALaisser">la liste des éléments à laisser est fournie par le joueur via l'interface associée IG</param>
        /// <param name="protectionAppliquee">la protection est fournie par le joueur via l'interface associée IG</param>
        public static void Action_ColonisationIle(Joueur joueurActeur, IleColonisable ileCible, TableDeBord elementsALaisser, NiveauProtection protectionAppliquee)
        {
            // action du joueur
            joueurActeur.ColoniserIle(ileCible, elementsALaisser);

            // TODO : créer la gestion de loot

            // alimentation de l'île
            ileCible.Colonisation(elementsALaisser, protectionAppliquee);

            // modification des réputations
            joueurActeur.ReputationsJoueur.ModifierReputations_Colonisation();

            // TODO : gérer les réactions IA (Personnalité)

        }

        public static void Action_AttaquerIle()
        {
        }

        public static void Action_DefendreIle()
        {
        }

        public static void Action_CoulerNavire()
        {
        }

        public static void Action_VendreContrebande()
        { 
        }

        public static void Action_SoumettrePotDeVinAPiofo()
        {
        }
    }
}
